home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_libtool.idb / usr / freeware / share / aclocal / libtool.m4.z / libtool.m4
Encoding:
Text File  |  1999-07-16  |  14.4 KB  |  428 lines

  1. ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
  2. ## Copyright (C) 1996-1999 Free Software Foundation, Inc.
  3. ## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
  4. ##
  5. ## This program is free software; you can redistribute it and/or modify
  6. ## it under the terms of the GNU General Public License as published by
  7. ## the Free Software Foundation; either version 2 of the License, or
  8. ## (at your option) any later version.
  9. ##
  10. ## This program is distributed in the hope that it will be useful, but
  11. ## WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13. ## General Public License for more details.
  14. ##
  15. ## You should have received a copy of the GNU General Public License
  16. ## along with this program; if not, write to the Free Software
  17. ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  18. ##
  19. ## As a special exception to the GNU General Public License, if you
  20. ## distribute this file as part of a program that contains a
  21. ## configuration script generated by Autoconf, you may include it under
  22. ## the same distribution terms that you use for the rest of that program.
  23.  
  24. # serial 40 AC_PROG_LIBTOOL
  25. AC_DEFUN(AC_PROG_LIBTOOL,
  26. [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
  27.  
  28. # Save cache, so that ltconfig can load it
  29. AC_CACHE_SAVE
  30.  
  31. # Actually configure libtool.  ac_aux_dir is where install-sh is found.
  32. CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
  33. LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
  34. LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
  35. DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
  36. ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
  37. $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
  38. || AC_MSG_ERROR([libtool configure failed])
  39.  
  40. # Reload cache, that may have been modified by ltconfig
  41. AC_CACHE_LOAD
  42.  
  43. # This can be used to rebuild libtool when needed
  44. LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
  45.  
  46. # Always use our own libtool.
  47. LIBTOOL='$(SHELL) $(top_builddir)/libtool'
  48. AC_SUBST(LIBTOOL)dnl
  49.  
  50. # Redirect the config.log output again, so that the ltconfig log is not
  51. # clobbered by the next message.
  52. exec 5>>./config.log
  53. ])
  54.  
  55. AC_DEFUN(AC_LIBTOOL_SETUP,
  56. [AC_PREREQ(2.13)dnl
  57. AC_REQUIRE([AC_ENABLE_SHARED])dnl
  58. AC_REQUIRE([AC_ENABLE_STATIC])dnl
  59. AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
  60. AC_REQUIRE([AC_CANONICAL_HOST])dnl
  61. AC_REQUIRE([AC_CANONICAL_BUILD])dnl
  62. AC_REQUIRE([AC_PROG_RANLIB])dnl
  63. AC_REQUIRE([AC_PROG_CC])dnl
  64. AC_REQUIRE([AC_PROG_LD])dnl
  65. AC_REQUIRE([AC_PROG_NM])dnl
  66. AC_REQUIRE([AC_PROG_LN_S])dnl
  67. dnl
  68.  
  69. # Check for any special flags to pass to ltconfig.
  70. libtool_flags="--cache-file=$cache_file"
  71. test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
  72. test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
  73. test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
  74. test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
  75. test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
  76. ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
  77. [libtool_flags="$libtool_flags --enable-dlopen"])
  78. ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
  79. [libtool_flags="$libtool_flags --enable-win32-dll"])
  80. AC_ARG_ENABLE(libtool-lock,
  81.   [  --disable-libtool-lock  avoid locking (might break parallel builds)])
  82. test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
  83. test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
  84.  
  85. # Some flags need to be propagated to the compiler or linker for good
  86. # libtool support.
  87. case "$host" in
  88. *-*-irix6*)
  89.   # Find out which ABI we are using.
  90.   echo '[#]line __oline__ "configure"' > conftest.$ac_ext
  91.   if AC_TRY_EVAL(ac_compile); then
  92.     case "`/usr/bin/file conftest.o`" in
  93.     *32-bit*)
  94.       LD="${LD-ld} -32"
  95.       ;;
  96.     *N32*)
  97.       LD="${LD-ld} -n32"
  98.       ;;
  99.     *64-bit*)
  100.       LD="${LD-ld} -64"
  101.       ;;
  102.     esac
  103.   fi
  104.   rm -rf conftest*
  105.   ;;
  106.  
  107. *-*-sco3.2v5*)
  108.   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
  109.   SAVE_CFLAGS="$CFLAGS"
  110.   CFLAGS="$CFLAGS -belf"
  111.   AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
  112.     [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
  113.   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
  114.     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
  115.     CFLAGS="$SAVE_CFLAGS"
  116.   fi
  117.   ;;
  118.  
  119. ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
  120. [*-*-cygwin* | *-*-mingw*)
  121.   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
  122.   AC_CHECK_TOOL(AS, as, false)
  123.   AC_CHECK_TOOL(OBJDUMP, objdump, false)
  124.   ;;
  125. ])
  126. esac
  127. ])
  128.  
  129. # AC_LIBTOOL_DLOPEN - enable checks for dlopen support
  130. AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
  131.  
  132. # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
  133. AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
  134.  
  135. # AC_ENABLE_SHARED - implement the --enable-shared flag
  136. # Usage: AC_ENABLE_SHARED[(DEFAULT)]
  137. #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
  138. #   `yes'.
  139. AC_DEFUN(AC_ENABLE_SHARED, [dnl
  140. define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
  141. AC_ARG_ENABLE(shared,
  142. changequote(<<, >>)dnl
  143. <<  --enable-shared[=PKGS]  build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
  144. changequote([, ])dnl
  145. [p=${PACKAGE-default}
  146. case "$enableval" in
  147. yes) enable_shared=yes ;;
  148. no) enable_shared=no ;;
  149. *)
  150.   enable_shared=no
  151.   # Look at the argument we got.  We use all the common list separators.
  152.   IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
  153.   for pkg in $enableval; do
  154.     if test "X$pkg" = "X$p"; then
  155.       enable_shared=yes
  156.     fi
  157.   done
  158.   IFS="$ac_save_ifs"
  159.   ;;
  160. esac],
  161. enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
  162. ])
  163.  
  164. # AC_DISABLE_SHARED - set the default shared flag to --disable-shared
  165. AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
  166. AC_ENABLE_SHARED(no)])
  167.  
  168. # AC_ENABLE_STATIC - implement the --enable-static flag
  169. # Usage: AC_ENABLE_STATIC[(DEFAULT)]
  170. #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
  171. #   `yes'.
  172. AC_DEFUN(AC_ENABLE_STATIC, [dnl
  173. define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
  174. AC_ARG_ENABLE(static,
  175. changequote(<<, >>)dnl
  176. <<  --enable-static[=PKGS]  build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
  177. changequote([, ])dnl
  178. [p=${PACKAGE-default}
  179. case "$enableval" in
  180. yes) enable_static=yes ;;
  181. no) enable_static=no ;;
  182. *)
  183.   enable_static=no
  184.   # Look at the argument we got.  We use all the common list separators.
  185.   IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
  186.   for pkg in $enableval; do
  187.     if test "X$pkg" = "X$p"; then
  188.       enable_static=yes
  189.     fi
  190.   done
  191.   IFS="$ac_save_ifs"
  192.   ;;
  193. esac],
  194. enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
  195. ])
  196.  
  197. # AC_DISABLE_STATIC - set the default static flag to --disable-static
  198. AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
  199. AC_ENABLE_STATIC(no)])
  200.  
  201.  
  202. # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
  203. # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
  204. #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
  205. #   `yes'.
  206. AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
  207. define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
  208. AC_ARG_ENABLE(fast-install,
  209. changequote(<<, >>)dnl
  210. <<  --enable-fast-install[=PKGS]  optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
  211. changequote([, ])dnl
  212. [p=${PACKAGE-default}
  213. case "$enableval" in
  214. yes) enable_fast_install=yes ;;
  215. no) enable_fast_install=no ;;
  216. *)
  217.   enable_fast_install=no
  218.   # Look at the argument we got.  We use all the common list separators.
  219.   IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
  220.   for pkg in $enableval; do
  221.     if test "X$pkg" = "X$p"; then
  222.       enable_fast_install=yes
  223.     fi
  224.   done
  225.   IFS="$ac_save_ifs"
  226.   ;;
  227. esac],
  228. enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
  229. ])
  230.  
  231. # AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
  232. AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
  233. AC_ENABLE_FAST_INSTALL(no)])
  234.  
  235. # AC_PROG_LD - find the path to the GNU or non-GNU linker
  236. AC_DEFUN(AC_PROG_LD,
  237. [AC_ARG_WITH(gnu-ld,
  238. [  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
  239. test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
  240. AC_REQUIRE([AC_PROG_CC])dnl
  241. AC_REQUIRE([AC_CANONICAL_HOST])dnl
  242. AC_REQUIRE([AC_CANONICAL_BUILD])dnl
  243. ac_prog=ld
  244. if test "$ac_cv_prog_gcc" = yes; then
  245.   # Check if gcc -print-prog-name=ld gives a path.
  246.   AC_MSG_CHECKING([for ld used by GCC])
  247.   ac_prog=`($CC -print-prog-name=ld) 2>&5`
  248.   case "$ac_prog" in
  249.     # Accept absolute paths.
  250. changequote(,)dnl
  251.     [\\/]* | [A-Za-z]:[\\/]*)
  252.       re_direlt='/[^/][^/]*/\.\./'
  253. changequote([,])dnl
  254.       # Canonicalize the path of ld
  255.       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
  256.       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
  257.     ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
  258.       done
  259.       test -z "$LD" && LD="$ac_prog"
  260.       ;;
  261.   "")
  262.     # If it fails, then pretend we aren't using GCC.
  263.     ac_prog=ld
  264.     ;;
  265.   *)
  266.     # If it is relative, then search for the first ld in PATH.
  267.     with_gnu_ld=unknown
  268.     ;;
  269.   esac
  270. elif test "$with_gnu_ld" = yes; then
  271.   AC_MSG_CHECKING([for GNU ld])
  272. else
  273.   AC_MSG_CHECKING([for non-GNU ld])
  274. fi
  275. AC_CACHE_VAL(ac_cv_path_LD,
  276. [if test -z "$LD"; then
  277.   IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
  278.   for ac_dir in $PATH; do
  279.     test -z "$ac_dir" && ac_dir=.
  280.     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
  281.       ac_cv_path_LD="$ac_dir/$ac_prog"
  282.       # Check to see if the program is GNU ld.  I'd rather use --version,
  283.       # but apparently some GNU ld's only accept -v.
  284.       # Break only if it was the GNU/non-GNU ld that we prefer.
  285.       if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
  286.     test "$with_gnu_ld" != no && break
  287.       else
  288.     test "$with_gnu_ld" != yes && break
  289.       fi
  290.     fi
  291.   done
  292.   IFS="$ac_save_ifs"
  293. else
  294.   ac_cv_path_LD="$LD" # Let the user override the test with a path.
  295. fi])
  296. LD="$ac_cv_path_LD"
  297. if test -n "$LD"; then
  298.   AC_MSG_RESULT($LD)
  299. else
  300.   AC_MSG_RESULT(no)
  301. fi
  302. test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
  303. AC_SUBST(LD)
  304. AC_PROG_LD_GNU
  305. ])
  306.  
  307. AC_DEFUN(AC_PROG_LD_GNU,
  308. [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
  309. [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
  310. if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
  311.   ac_cv_prog_gnu_ld=yes
  312. else
  313.   ac_cv_prog_gnu_ld=no
  314. fi])
  315. ])
  316.  
  317. # AC_PROG_NM - find the path to a BSD-compatible name lister
  318. AC_DEFUN(AC_PROG_NM,
  319. [AC_MSG_CHECKING([for BSD-compatible nm])
  320. AC_CACHE_VAL(ac_cv_path_NM,
  321. [if test -n "$NM"; then
  322.   # Let the user override the test.
  323.   ac_cv_path_NM="$NM"
  324. else
  325.   IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
  326.   for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
  327.     test -z "$ac_dir" && ac_dir=.
  328.     if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
  329.       # Check to see if the nm accepts a BSD-compat flag.
  330.       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
  331.       #   nm: unknown option "B" ignored
  332.       if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
  333.     ac_cv_path_NM="$ac_dir/nm -B"
  334.     break
  335.       elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
  336.     ac_cv_path_NM="$ac_dir/nm -p"
  337.     break
  338.       else
  339.     ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
  340.     continue # so that we can try to find one that supports BSD flags
  341.       fi
  342.     fi
  343.   done
  344.   IFS="$ac_save_ifs"
  345.   test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
  346. fi])
  347. NM="$ac_cv_path_NM"
  348. AC_MSG_RESULT([$NM])
  349. AC_SUBST(NM)
  350. ])
  351.  
  352. # AC_CHECK_LIBM - check for math library
  353. AC_DEFUN(AC_CHECK_LIBM,
  354. [AC_REQUIRE([AC_CANONICAL_HOST])dnl
  355. LIBM=
  356. case "$host" in
  357. *-*-beos* | *-*-cygwin*)
  358.   # These system don't have libm
  359.   ;;
  360. *-ncr-sysv4.3*)
  361.   AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
  362.   AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
  363.   ;;
  364. *)
  365.   AC_CHECK_LIB(m, main, LIBM="-lm")
  366.   ;;
  367. esac
  368. ])
  369.  
  370. # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
  371. # the libltdl convenience library, adds --enable-ltdl-convenience to
  372. # the configure arguments.  Note that LIBLTDL is not AC_SUBSTed, nor
  373. # is AC_CONFIG_SUBDIRS called.  If DIR is not provided, it is assumed
  374. # to be `${top_builddir}/libltdl'.  Make sure you start DIR with
  375. # '${top_builddir}/' (note the single quotes!) if your package is not
  376. # flat, and, if you're not using automake, define top_builddir as
  377. # appropriate in the Makefiles.
  378. AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
  379.   case "$enable_ltdl_convenience" in
  380.   no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
  381.   "") enable_ltdl_convenience=yes
  382.       ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
  383.   esac
  384.   LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
  385.   INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
  386. ])
  387.  
  388. # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
  389. # the libltdl installable library, and adds --enable-ltdl-install to
  390. # the configure arguments.  Note that LIBLTDL is not AC_SUBSTed, nor
  391. # is AC_CONFIG_SUBDIRS called.  If DIR is not provided, it is assumed
  392. # to be `${top_builddir}/libltdl'.  Make sure you start DIR with
  393. # '${top_builddir}/' (note the single quotes!) if your package is not
  394. # flat, and, if you're not using automake, define top_builddir as
  395. # appropriate in the Makefiles.
  396. # In the future, this macro may have to be called after AC_PROG_LIBTOOL.
  397. AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
  398.   AC_CHECK_LIB(ltdl, main,
  399.   [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
  400.   [if test x"$enable_ltdl_install" = xno; then
  401.      AC_MSG_WARN([libltdl not installed, but installation disabled])
  402.    else
  403.      enable_ltdl_install=yes
  404.    fi
  405.   ])
  406.   if test x"$enable_ltdl_install" = x"yes"; then
  407.     ac_configure_args="$ac_configure_args --enable-ltdl-install"
  408.     LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
  409.     INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
  410.   else
  411.     ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
  412.     LIBLTDL="-lltdl"
  413.     INCLTDL=
  414.   fi
  415. ])
  416.  
  417. dnl old names
  418. AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
  419. AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
  420. AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
  421. AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
  422. AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
  423. AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
  424. AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
  425.  
  426. dnl This is just to silence aclocal about the macro not being used
  427. ifelse([AC_DISABLE_FAST_INSTALL])dnl
  428.